/*
 * File Name:               XState.cs
 *
 * Description:             普通类
 * Author:                  lisiyu
 * Create Date:             2016/09/23
 */

public interface ISetParam<T>
{
    void setParam(T param);
}

public abstract class XStateAction<TOwner, TAction>
    where TAction : XStateAction<TOwner, TAction>
    //where TMachine : XStateMachine<TOwner, TAction, TMachine>, new()
{
	protected TOwner mOwner;
    //protected TMachine mStateMachine;
    protected int mStateId;

	public virtual void onCreate(TOwner owner, int stateId)
	{
		mOwner = owner;
        mStateId = stateId;
	}
    
    public abstract void onEnter();

    public abstract void onLeave();
}